/**
 * 依赖放到这里进行引入，统一的管理
 *
 * @author Created by 半仙 on 2023/7/31/031 15:05
 */
object Dependencies {

    /// 安卓
    object Android {

        const val lifecycleCore = "androidx.lifecycle:lifecycle-livedata-core-ktx:2.5.1"
        const val coroutinesCore = "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.1"
        const val coroutinesAndroid = "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1"
        const val constraintlayout = "androidx.constraintlayout:constraintlayout:2.1.4"
        const val appcompat = "androidx.appcompat:appcompat:1.6.1"
        const val recyclerview = "androidx.recyclerview:recyclerview:1.2.1"
        const val baseRecyclerAdapter = "io.github.cymchad:BaseRecyclerViewAdapterHelper:3.0.14"
        const val startupRuntime = "androidx.startup:startup-runtime:1.2.0-alpha02"
        const val material = "com.google.android.material:material:1.8.0"
        const val rxjava2 = "com.squareup.retrofit2:adapter-rxjava2:2.4.0"
        const val launcher = "com.gitee.ingxin:activity-launcher:1.0"
        const val asynclayoutinflater = "androidx.asynclayoutinflater:asynclayoutinflater:1.0.0"
    }

    /// kotlin 扩展
    object Ktx {

        const val coreKtx = "androidx.core:core-ktx:1.9.0"
        const val collectionKtx = "androidx.collection:collection-ktx:1.2.0"
        const val fragmentKtx = "androidx.fragment:fragment-ktx:1.5.5"
        const val lifecycleKtx = "androidx.lifecycle:lifecycle-runtime-ktx:2.5.1"
        const val liveDataKtx = "androidx.lifecycle:lifecycle-livedata-ktx:2.5.1"
        const val unpeekliveData = "com.kunminx.archi:unpeek-livedata:4.4.1-beta1"
        const val viewmodelKtx = "androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1"
        const val stdlib = "org.jetbrains.kotlin:kotlin-stdlib:1.6.10"
        const val reflect = "org.jetbrains.kotlin:kotlin-reflect:1.9.0"
    }

    //测试
    object Test {

        const val junit = "junit:junit:4.13.2"
        const val assertk = "com.willowtreeapps.assertk:assertk:0.27.0"
        const val androidJunit = "androidx.test.ext:junit:1.1.5"
        const val espresso = "androidx.test.espresso:espresso-core:3.5.1"
        const val leakcanary = "com.squareup.leakcanary:leakcanary-android:2.12"

    }

    /// 网络请求
    object Http {

        const val okhttp3 = "com.squareup.okhttp3:okhttp:4.9.3"
        const val retrofit = "com.squareup.retrofit2:retrofit:2.9.0"
        const val manage = "me.jessyan:retrofit-url-manager:1.4.0"
        const val retrofitGson = "com.squareup.retrofit2:converter-gson:2.9.0"
        const val retrofitMoshi = "com.squareup.retrofit2:converter-moshi:2.9.0"
    }

    //解析
    object Parse {

        const val moshi = "com.squareup.moshi:moshi-kotlin:1.15.0"
        const val moshiCodegen = "com.squareup.moshi:moshi-kotlin-codegen:1.15.0"
        const val gson = "com.google.code.gson:gson:2.10.1"
        const val guava = "com.google.guava:guava:32.1.3-android"
    }

    /// 日志打印
    object Log {

        const val timber = "com.jakewharton.timber:timber:4.7.1"
        const val logger = "com.orhanobut:logger:2.2.0"
    }

    /// 缓存
    object Cache {

        const val mmkv = "com.tencent:mmkv:1.3.0"
    }

    ///glide图片加载器
    object Glide {

        const val glide = "com.github.bumptech.glide:glide:4.15.1"
        const val glideTransformation = "jp.wasabeef:glide-transformations:4.3.0"
        const val glideCompiler = "com.github.bumptech.glide:compiler:4.15.1"
    }

    ///utils工具
    object Utils {

        const val utils = "com.blankj:utilcodex:1.31.1"
    }

    /// 牛逼哄哄的状态栏
    object Bar {

        const val immer = "com.geyifeng.immersionbar:immersionbar:3.2.2"
        const val immerktx = "com.geyifeng.immersionbar:immersionbar-ktx:3.2.2"
    }

    /// 好用的UI工具
    object Xpopup {

        const val xpopup = "com.github.li-xiaojun:XPopup:2.9.19"
    }

    ///eventBus
    object EventBus {

        const val eventbus = "org.greenrobot:eventbus:3.3.1"
    }

    ///Google
    object Google {

        const val googleBom = "com.google.cloud:libraries-bom:26.1.1"
        const val googleLogin = "com.google.android.gms:play-services-auth:20.7.0"
        const val googleIden = "com.google.android.gms:play-services-ads-identifier:18.0.1"
        const val googleRecaptcha = "com.google.android.recaptcha:recaptcha:18.5.1"
        const val googlePay = "com.android.billingclient:billing-ktx:6.0.1"
        const val firebaseBom = "com.google.firebase:firebase-bom:32.3.1"
        const val firebaseAnalytics = "com.google.firebase:firebase-analytics-ktx"
        const val firebaseCrashlytics = "com.google.firebase:firebase-crashlytics-ktx"
        const val firebaseMessaging = "com.google.firebase:firebase-messaging-ktx"
    }

    ///同声传译  不可删除
    object Translate {

        const val speech = "com.google.cloud:google-cloud-speech:2.5.4"
        const val translate = "com.google.cloud:google-cloud-translate:2.3.4"
        const val googleOauth = "com.google.auth:google-auth-library-oauth2-http:1.20.0"
        const val grpcOkhttp = "io.grpc:grpc-okhttp:1.33.0"
    }

    ///反射
    object Pinyin4j {

        const val pinyin4j = "com.belerweb:pinyin4j:2.5.0"
    }

    ///Room数据库
    object Room {

        const val room = "androidx.room:room-runtime:2.5.0"
        const val roomkts = "androidx.room:room-ktx:2.5.0"
        const val roomCompiler = "androidx.room:room-compiler:2.5.0"
    }

    ///时间滚筒选择器
    object WheelView {

        const val wheelview = "com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.12"
    }

    ///鲁班压缩
    object LuBan {

        const val luban = "top.zibin:Luban:1.1.8"
    }

    ///recyclerview自动换行
    object FlexBox {

        const val flexbox = "com.google.android:flexbox:3.0.0"
    }

    ///文字渐变
    object ShapeView {

        const val shapeview = "com.github.getActivity:ShapeView:9.2"
    }

    /// 上下拉刷新加载库
    object SmartRefresh {

        const val smartRefreshCore = "io.github.scwang90:refresh-layout-kernel:2.0.6"
        const val smartRefreshHeader = "io.github.scwang90:refresh-header-material:2.0.6"
        const val smartRefreshFalsify = "io.github.scwang90:refresh-header-falsify:2.0.6"
        const val smartRefreshFooter = "io.github.scwang90:refresh-footer-classics:2.0.6"
    }

    ///既购SDK
    object Zego {

        const val zegoVideo = "im.zego:express-video:3.15.0"

        const val minigameengine = "im.zego:minigameengine:1.5.1.93"
    }

    ///emoji
    object Emoji {

        const val emoji = "com.vanniktech:emoji-google-compat:0.18.0"
    }

    object PictureSelector {

        const val picture = "io.github.lucksiege:pictureselector:v3.11.2"
        const val cardStack = "com.yuyakaido.android:card-stack-view:2.3.4"
    }

    ///banner
    object Banner {

        const val bannerViewPager = "com.github.zhpanvip:bannerviewpager:3.5.12"
        const val banner = "io.github.youth5201314:banner:2.2.2"
    }

    ///指示器
    object MagicIndicator {

        const val magicIndicator = "com.github.hackware1993:MagicIndicator:1.7.0"
    }

    ///pathlayoutmanager
    object Pathlayoutmanager {

        const val pathlayoutmanager = "com.wuyr:pathlayoutmanager:1.0.3"
    }

    ///webView
    object WebView {

        const val webAgent = "com.github.Justson.AgentWeb:agentweb-core:v5.0.6-androidx"
    }

    //PhotoView
    object PhotoView {

        const val photoview = "com.github.chrisbanes:PhotoView:2.3.0"
    }

    ///Pag
    object PagLib {

        const val pagLib = "com.tencent.tav:libpag:4.3.51"
    }

    ///RxDownload
    object RxDownLoad {

        const val rxDownLoad = "com.github.ssseasonnn.RxDownload:rxdownload4:1.1.4"
    }

    //multi-language
    object MultiLanguage {

        const val multiLanguage = "com.github.getActivity:MultiLanguages:9.0"
    }

    object Splashscreen {

        const val splashscreen = "androidx.core:core-splashscreen:1.0.1"
    }

    //美颜
    object FaceUnity {

        const val nameLite = "com.faceunity:nama:7.3.2-lite"
    }

    //adjust
    object Adjust {

        const val adjustAndroid = "com.adjust.sdk:adjust-android:4.33.5"
        const val installReferrer = "com.android.installreferrer:installreferrer:2.2"
        const val playService = "com.google.android.gms:play-services-appset:16.0.2"
    }

    ///autoSize
    object AutoSize {

        const val autosize = "com.github.JessYanCoding:AndroidAutoSize:v1.2.1"
    }

    //图片裁切
    object Ucrop {

        const val ucrop = "com.github.yalantis:ucrop:2.2.8"
    }

    ///二维码
    object Zxing {

        const val zxing = "cn.yipianfengye.android:zxing-library:2.2"
    }

}